package com.ruoyi.work.mapper;

import com.ruoyi.work.domain.WorkProject;
import com.ruoyi.work.domain.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author: MMDZ
 * @Desc:
 */
public interface WorkReportMapper {
    //人力成本数据明细
    List<Map<String, Object>> selectCostCollectionList(CostCollectionReport report);

    //人力成本数据明细
    List<Map<String, Object>> selectDetailCostList(CostDetailReport report);

    //人力成本统计表(部门维度)
    List<Map<String, Object>> selectDeptCostList(DeptCostReport report);

    //人力成本统计表(项目维度)
    List<ProjectCostReport> selectProjectCostList(ProjectCostReport report);

    //人力成本统计表(月份维度)
    List<MonthCostReport> selectMonthCostList();

    //项目工时清单
    List<Map<String, Object>> selectProjectHourList(@Param("projectId") Long projectId, @Param("stages") List<String> stages, @Param("stageIds") List<Long> stageIds);

    //数据汇总
    List<Map<String, Object>> selectAllSumList(UserHourReport report);

    //部门合计
    List<Map<String, Object>> selectDeptSumList(UserHourReport report);

    //日期总计
    List<Map<String, Object>> selectDateSumList(UserHourReport report);

    //项目 人力成本 核算
    List<ProjectCheckReport> selectProjectCheckList(ProjectCheckReport report);

    //根据日期获取所有的项目代码
    List<String> selectAllProjectCodeByDate(UserHourReport report);

    //根据所有的填报项目
    List<WorkProject> selectFillProjectAll();

    //所有的阶段名称
    List<String> selectWorkStageAll();
}
